package br.com.webprojeto.colecoes;


import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.webprojeto.basicas.*;
import br.com.webprojeto.interfaces.*;

public class ColecaoVeiculo implements InterfaceColecaoVeiculo {
 
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoVeiculo#adicionarVeiculo(br.com.webrastreio.basicas.Veiculo)
	 */
	public void adicionarVeiculo(Veiculo Ve) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.saveOrUpdate(Ve);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoVeiculo#removerVeiculo(br.com.webrastreio.basicas.Veiculo)
	 */
	public void removerVeiculo(Veiculo Ve) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.delete(Ve);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoVeiculo#atualizarVeiculo(br.com.webrastreio.basicas.Veiculo)
	 */
	public void atualizarVeiculo(Veiculo Ve) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.update(Ve);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoVeiculo#procurarVeiculo(java.lang.String)
	 */
	public Veiculo procurarVeiculo(String placaPolicial) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Veiculo where placaPolicial like ?");
		consulta.setParameter(0, placaPolicial);
		Veiculo Ve = (Veiculo) consulta.uniqueResult();
		sessao.getTransaction().commit();
		return Ve;
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoVeiculo#listarVeiculo()
	 */
	public List<Veiculo> listarVeiculo() {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Veiculo");
		return consulta.list();
	}
	 
}
 
